#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<string.h>

//int main()
//{
//  umask(0);
//  int fd = open("log.txt", O_CREAT | O_WRONLY, 0666);
////  if(fd < 0)
////  {
////    perror("open");
////    return 1;
////  }
////
////  const char* msg = "hello linux!\n";
////  int cnt = 5;
////  while(cnt)
////  {
////    write(fd, msg, strlen(msg));
////    cnt--;
////  }
////
//  close(fd);
//  return 0;
//}
//
//int main()
//{
//    int fd = open("log.txt", O_RDONLY);
//    if (fd < 0) {
//        perror("open");
//        return 1;
//    }
//    const char* msg = "hello linux!\n";
//    char buf[1024];
//    while (1) {
//        ssize_t s = read(fd, buf, strlen(msg));//类⽐write
//        if (s > 0) {
//            printf("%s", buf);
//        }
//        else {
//            break;
//        }
//    }
//    close(fd);
//    return 0;
//}

int main()
{
  umask(0);
  int fd = open("log.txt", O_CREAT | O_WRONLY | O_TRUNC, 0666);
  dup2(fd, 1);
  close(fd);

  printf("fd:%d\n", fd);
  printf("hello linux!\n");
  printf("hello linux!\n");
  printf("hello linux!\n");
  fprintf(stdout, "hello stdout\n");
  fprintf(stdout, "hello stdout\n");
  fprintf(stdout, "hello stdout\n");
  fprintf(stdout, "hello stdout\n");
  return 0;
}
